Processes for producing products (typically prototypes) in three dimensions by stacking layers are known, such as for example by stereolithography or filament deposition (or FDM for “Fused deposition Modeling”).
The stererolithography principle is the following:    1) at least one projection image is projected onto a photoreactive layer, said photoreactive layer solidifying on the area where the projection image is projected, and then    2) the solidified layer is covered with a new photoreactive resin layer, and then    3) once again, at least one projection image is projected onto this new photoreactive layer,    steps 2) and 3) being reiterated as many times as required to make a product in three dimensions. Generally, the projection image varies for each layer. For example, to make a ball, this image consists of a disk the diameter of which increases from a first apex of the ball to the middle of the ball, and then decreases from the middle of the ball up to a second apex of the ball.
This technique enables products to be made in three dimensions directly in a photopolymerisable resin without machining. The image being solidified or to be solidified of a layer is also called setpoint image.
The projection image can be much smaller than the area to be solidified. For a same layer, several projections are thus required. For example, for a setpoint image consisting of a square having a 30 centimeter side, a projection image consisting of a square having a 10 centimeter side is successively and side by side projected nine times.
The rapid prototyping by filament deposition consists in melting a resin (generally plastics) through a nozzle heated at high temperature, so as to exit therefrom a resin melted filament (in the order of a tenth of a millimeter) and depositing this wire for melt-bonding it on a previously deposited layer.
In processes for producing products in three spatial dimensions (3D) by stacking layers (as opposed to machining tools which operate by stock removal), there is a step of transforming three spatial dimension (3D) information to a series of two spatial dimension (2D) cross-section information representative of the layers. The layers can be planar such as in stereolithography or curved as in some cases of filament depositions. The conventional technique for transforming the 3D file into a 2D file consists in computing a stack of mathematical cross-sections, corresponding to the actual stack of layers during production.
Once geometric information representative of a cross-section of the product to be produced are available, a further processing of this 2D cross-section information is caused to be performed and thus for each layer, production 2D information suitable for the technology used are obtained.
For example, a path can be defined as vectors (contour vectors, filling vectors) as for example in the case of a prototyping machine with laser and galvanometric mirrors (stereolithography, laser sintering). For a production by filament deposition, the approach is similar but the optimum path is different because the dynamics of the physical head depositing the material is much different from that of a light impact deflected by mirrors.
In other examples, matrix definitions rather than vector definitions can be used, as for example in the case of prototyping machines with direct light projection (or DLP for “Digital Light Processing®”) or with printing heads with nozzles. Processing a layer then consists in defining which pixels of the layer are located in the material of the product to be produced. For this, the following algorithm (“scanline fill”) is applied in reference to FIG. 1.
For each of the cross-sections to be processed:
a grid 1 is applied onto the layer 2,
for each row 3 of the grid (the columns could also be iterated . . . ):                starting from an end of the row, and going towards to the other edge of the cross-section (from left to right in FIG. 1), by updating a “number of entrances/exits in the material” counter having “0” as an initial value (it is considered that there is no material at the edge of the grid): each time a limit 4 for entrance into the material is crossed, the counter is increased by 1, and it is decremented by 1 each time a limit 5 for exit from the material is crossed;        each time a pixel is crossed, the status of the counter is looked at: if it is higher than 0, the pixel is ticked as being inside the object defined by contours 4, 5, and the pixel is ticked as being outside the object defined by contours 4, 5 otherwise.        
The grid 1 of the figure can more generally be any paving for example of the honeycomb type. The iterations then are not made on “rows” or “columns”, but along preferential axes of the pavings used.
Such a processing has some drawbacks.
First, it requires a significant computing time.
In order not to immobilize the producing machine during this processing, and because of the complexity of this processing, this processing should be performed on a dedicated calculator independent from the production machine, which implies practically a further step of transferring information from the calculator to another control computer of the production machine.
Further, due to this transfer step, production information should be restricted in volume in order to prevent the transfer from taking too much time, which restricts the spatial resolution in the product to be produced.
Finally, the natural parallelisation of this processing is simple to implement: the processing for each cross-section can be made independently and in parallel. These processings are very likely to take a different time from one layer to the other, for example as a function of the number of entrance and exit limits of the layer. Thus, in the general case, processings will not be of the same duration from one layer to the other and they will have to use iterative mechanisms internal to each layer processing, and with complex synchronization between layer processings.
In a similar way, within one of these processings, the path of lines from one end to the other of the field can be performed in parallel (step 2 above). This is a comparable situation to the paralleling of the sections processings: there are lines that will be more complex than others, as a function of the number of crossings the entrance or exit lines, and with iterative algorithms and complex synchronizations.
It is thus possible to contemplate applying a complex but non-“massive” parallelism, that is only of the “MIMD” (“Multiple Instruction on Multiple Data”) type and non of the “SIMD” (“Single Instruction on Multiple Data”) type, whereas it is considered that the SIMD algorithms are potentially more efficient, but are restricted in their applicability to particularly simple operations. It is reminded that the SIMD parallelism is one of the four operating modes defined by Flynn taxonomy and designates an operating mode where several computing units operate in parallel, such that the same instruction is applied in parallel over time to several data to produce several results.
The purpose of the present invention is to provide a lithography process or device enabling at least one of the abovementioned drawbacks to be solved.